package me.sdevil507.biz.fruit.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import me.sdevil507.biz.fruit.po.*;
import me.sdevil507.supports.upload.po.AttachFile;

import javax.persistence.Column;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @program: tips_back_end
 * @description: DTO
 * @author: kzl
 * @create: 2020-06-23 17:25
 **/
@Data
public class FruitDTO {


    private Long id;

    private Long initFruitId;

    private Long[] fruitIds;

    private Integer terminal;

    private String loginPhoneNumber;

    private String type;

    private String notype;

    /**
     * 分支记录
     *
     */
    private List<ResultTagFruitDTO> allTagFruitList;

    /**
     * 报告类型
     */

    private String reportType;

    private String reportTypeName;

    private String publicationType;

    private String  publicationTypeName;

    /**
     * 政策咨询报告类型
     */

    private String policyType;

    private String policyTypeName;

    /**
     * 著作方式
     */
    private String writeType;

    private String writeTypeName;

    /**
     * 论文类型
     */

    private String paperType;
    private String paperTypeName;

    /**
     * 图书类型
     */

    private String bookType;

    private String bookTypeName;
    /**
     * 报告名称/论文名称/著作名称/媒体文章/微信/获奖作品/会议主题、采访主题、论坛名称
     */

    private String name;

    private String englishName;

    /**刊物照片**/

    private String photo;

    /***主办单位**/

    private String organizer;

    /**主管单位**/

    private String competentUnit;

    /**主编**/

    private String chiefEditor;

    /**创办日期**/
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;

    /**期号**/

    private String issueNumber;

    /**辑号**/

    private String serialNumber;

    /**语种**/

    private String languages;

    /**出版周期**/

    private String  pubCycle;

    /**出版地**/

    private String  pubPlace;

    /**发行量**/

    private String  circulation;

    /**发行对象**/

    private String  pubObject;

    private List<FruitAuthorPO> authorPOList =new ArrayList<>();;

    private List<FruitLeaderPO> leaderPOS =new ArrayList<>();;

    /**相关附件**/
    private List<AttachFile> attFiles = new ArrayList<>();

    /**感谢信和证明**/
    private List<FruitProvePO> proveList =new ArrayList<>();;

    /**合作单位信息**/
    private List<FruitCooInfoPO> cooInfoList =new ArrayList<>();;

    /**报送信息**/
    private List<FruitSubPO> subList =new ArrayList<>();;

    /**项目成员信息**/
    private List<FruitMemberPO> memberList =new ArrayList<>();;

    /**子项目信息**/
    private List<FruitSubprojectrPO> subprojectList =new ArrayList<>();

    /**完成方式
     *1.独立完成 2.合作完成
     * **/

    private String  completeMethod;

    /**
     * 完成时间
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completionTime;

    /**
     * 报告来源 1.课堂产生 2.单独生成
     */

    private String  source;

    private String  sourceName;
    /**
     * 课题名称
     */

    private String  topicName;


    private String  topicId;

    /**
     * 课题负责人
     */

    private String  topicLeader;

    /**
     * 关键字
     */

    private String  keyword;

    /**
     * 起草时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  draftTime;


    /**
     * 委托方单位
     */

    private String  client;


    /**
     * 委托方类型
     */

    private String  clientType;

    /**
     * 委托方等级
     */

    private String  clientLevel;

    private String  clientLevelName;


    /**
     * 刊登级别
     */

    private String publicationLevel;

    private String publicationLevelName;

    /**
     * 期刊名称
     */

    private String journalName ;

    /**
     * 刊登时间/出版时间/获奖时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pubTime;

    /**
     * 期刊类别
     */

    private String journalType;

    /**
     * 期刊类别名称
     */

    private String journalTypeName;

    /**
     * 阅读量
     */

    private String readNumber;

    /**
     * 链接
     */

    private String linkUrl;

    /**
     * 摘要
     */

    private String summary;

    /**
     * 研究领域
     */

    private String field;

    /**
     * 期次
     */

    private String period;

    /**
     * 论文收录情况
     */

    private String colPapers;

    /**
     * 论文转载情况
     */
    private String reprint;

    /**
     * 论文转载期数
     */
    private String reprintNper;

    /**
     * 是否删除
     */
    private Boolean  isDel= false;

    /**
     * 创建时间
     */

    private Date createTime = new Date();

    /**
     * 更新时间
     */

    private Date updateTime = new Date();

    /**
     * 智库id
     */

    private Long orgId;

    /**
     * 智库名称
     */
    private String orgName;

    /**
     * 智库ids
     */

    private Set<Long> orgIdList;

    /**
     * 平台操作用户id
     */

    private Long userId;

    /**
     * 平台操作用户姓名
     */

    private String userName;

    /**
     * 出版社
     */

    private String press;

    /**
     * ISBN
     */

    private String isbn;

    /**
     * 版次
     */

    private String edition;

    /**
     * 奖项
     */

    private String awards;

    /**
     * 颁奖单位
     */

    private String grantUnit;

    /**
     * 获奖级别
     */

    private String awardsLevel;
    private String awardsLevelName;

    /**
     * 媒体类别
     */

    private String mediaType;
    private String mediaTypeName;

    /**
     * 荣誉类别
     */

    private String honorType;
    private String honorTypeName;

    /**
     * 期刊网址
     */

    private String website;
    /**
     * 开本
     */

    private String bookSize;

    /**
     * 邮发代号
     */

    private String postalCode;


    private Boolean isOpen;

    private Boolean isForeign;

    /**
     * 提交开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date subStartTime ;

    /**
     * 提交开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date subEndTime;

    /**
     * 采纳开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date adoptStartTime ;

    /**
     * 采纳结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date adoptEndTime;

    /**
     * 刊登开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pubStartTime ;

    /**
     * 刊登结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pubEndTime;


    /**
     * 报表统计开始月份
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date pubStartMonth ;

    /**
     * 报表统计结束月份
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date pubEndMonth;

    /**
     * 报表统计批示开始月份
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date psStartMonth ;

    /**
     * 报表统计批示结束月份
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date psEndMonth;

    /**
     * 完成开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completionStartTime ;

    /**
     * 完成结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completionEndTime;

    /**
     * 创建开始时间
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date createStartTime ;

    /**
     * 创建结束时间
     */
    @JsonFormat(pattern = "yyyy-MM")
    private Date createEndTime;

    private String author;

    private String secretsType;

    private String secretsTypeName;
    /**
     * 备注
     */
    private String remark;

    /**
     * 专家id
     */
    private Long orgUserId;

    private String year;

    private String authorSort;

    private String activityProdType;

    private String undertaker;

    private String coorganizer;

    private String cooperator;

    private String theme;

    private String meetingType;
    private String meetingTypeName;

    private Integer meetingDays;

    private String visitType;

    private String visitTypeName;

    private String projectTypeParent;
    private String projectTypeParentName;

    private String projectTypeChildren;
    private String projectTypeChildrenName;

    private String contactFunds;

    private String approveFunds;

    private String allocatedFunds;

    private String selfraisedFunds;

    private String supportFunds;

    private String surplusFunds;

    private String projectStatus;

    private String projectStatusName;

    private String partyTypeParent;
    private String partyTypeParentName;

    private String partyTypeChildren;
    private String partyTypeChildrenName;

    private String linkMan;

    private String linkPhoneNumber;

    private String linkAddress;

    private String contractCategory;
    private String contractCategoryName;

    private String otherAuthor;

    private String communicationAuthor;

    private Long projectId;

    /**
     * 是否公开
     */
    private String  isPublic;
    /**
     * 批示时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  inclinationStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  inclinationEndTime;

    private String isSpecialSub;

    private String isBuildResearch;

    private String specialSubSource;

    private Integer specialSubDealStatus;

    private String bodyText;

    private String importProjectType;

    private String cttiPushStatus;

    //是否修改了表单信息
    @JsonProperty("isEdit")
    private boolean isEdit;

    private String patentType;

    private String researchField;

    private String researchDirection;

    private String fruitSource;

}
